/**************************************************************************************************
* Title: OctreeObject.h
* Authors: Gael Huber
* Description: Wrapper class for any object being placed into a Octree. Contains spherical
*	dimensions for the object, the center, the previous and next object in the linked list of
*	objects, and the relevant data as a void pointer to the data's address. Since the class is a
*	wrapper, only the address is needed.
**************************************************************************************************/
#ifndef __OCTREEOBJECT_H__
#define __OCTREEOBJECT_H__

#include "SmurfsPolygon.h"

class OctreeNode;

class OctreeObject {
public:
	OctreeObject(void);			// Constructor
	~OctreeObject(void);		// Destructor

	void initialize(void);	// Initialize the object (attempt to make thread-friendly?

	float center[3];				// Center point for the object
	float radius;				// Radius of the object bounding sphere
	SmurfsPolygon* data;					// Pointer to the address of the data
	OctreeNode* parentNode;	// Parent node for the object
	OctreeObject* nextObject;		// Pointer to the next object in the linked list.
	OctreeObject* previousObject;	// Pointer to the previous object in a linked list.
};

#endif